package com.zhht.checkcop.log.util;

import java.io.File;

import org.apache.log4j.Logger;

import com.zhbc.framework.utils.DateUtil;
import com.zhbc.framework.utils.FileInsert;
import com.zhbc.framework.utils.SysConfig;

/**
* @moudle: ControllerLogUtil 
* @version:v1.0
* @Description: TODO
* @author: xubin
* @date: 2017年2月13日 下午6:10:18
*
*/ 
public class ControllerLogUtil {

	private static Logger syslog = Logger.getLogger(ControllerLogUtil.class);
	private static String LOG_PATH = SysConfig.getString("controller.log.defaultPath");
	private static String LOG_FILE_PREFIX = "post";
	private static String LOG_FILE_SUFFIX = ".log";
	private FileInsert fi = null;
	private String logFileRealName;
	
	/**
	 * 
	*
	* <p>Title: info</p>
	* <p>author : xubin</p>
	* <p>date : 2017年2月13日 下午6:14:47</p>
	* @param message
	 */
	public static void info(Object message){
	    syslog.info(message);
	}
	
	/**
	 * 
	*
	* <p>Title: debug</p>
	* <p>author : xubin</p>
	* <p>date : 2017年2月13日 下午6:15:33</p>
	* @param message
	 */
	public static void debug(Object message){
        syslog.debug(message);
    }
	
	/**
	 * 
	*
	* <p>Title: error</p>
	* <p>author : xubin</p>
	* <p>date : 2017年2月13日 下午6:15:36</p>
	* @param message
	 */
	public static void error(Object message){
        syslog.error(message);
    }
	
	/**
	 * 
	*
	* <p>Title: initFI</p>
	* <p>author : xubin</p>
	* <p>date : 2017年2月13日 下午6:14:52</p>
	 */
	private void initFI() {
		String filename = LOG_PATH+"/"+LOG_FILE_PREFIX;
		String currdate = DateUtil.getCurrentDate().replaceAll("-", "");
		logFileRealName = filename + "_" + currdate + LOG_FILE_SUFFIX;
		fi = new FileInsert(logFileRealName);
		if (fi == null) {
			synchronized (logFileRealName) {
				File f=new File(logFileRealName);
				if(!f.getParentFile().exists()){
					syslog.debug("目录不存在,创建");
					 if(!f.getParentFile().mkdirs()){
						 syslog.debug("创建目标文件所在目录失败:"+logFileRealName);
					 }
				}
				fi = new FileInsert(logFileRealName);
			}
		}
	}
	
	public void closeLog() {
		if (fi != null) {
			fi.finish();
			fi = null;
		}
	}

	public FileInsert getFi() {
		return fi;
	}

	public void setFi(FileInsert fi) {
		this.fi = fi;
	}
}
